package com.xx.secret.core;

import com.alibaba.fastjson.JSONObject;
import com.xx.secret.entity.Result;

/**
 * @author wangcheng
 * @date 2021/4/25
 */
public interface IOpenVerify extends ApiLoan {

    /**
     * 参数验签
     * @author wangcheng
    **/
    void verify(JSONObject param);

    /**
     * 参数解密
    **/
    String decryptParam(JSONObject param);

    /**
     * 加密响应参数
    **/
    Object encryptResponse(Object resp);

    /**
     * 业务异常返回
    **/
    default Object exceptionResponse(Exception e) {
        return Result.error("response failure");
    }

    /**
     * 获取加解密用到的配置项
    **/
    default JSONObject getConfig() {
        //配置中获取
        return null;
        //return ConfigFactory.getConfig(getApiLoan().getApiName());
    }

}
